/**
  ******************************************************************************
  * @file    PrimeMotor_Driver.c
  * @author  tuancheng_Zero
  * @version V0.1
  * @date    08/05/2024
  * @brief   PrimeMotor Driver
  ******************************************************************************
*/ 
#ifndef  __PRIMEMOTOR_DRIVER_H__
#define  __PRIMEMOTOR_DRIVER_H__
#ifdef __cplusplus
extern "C" {
#endif

#define PMotor_WorkModeSwBit            DEF_BIT_00
#define PMotor_SetFreqBit               DEF_BIT_01

#define PMotor_STATU_RUNING                2
#define PMotor_STATU_STOP                  3

// 原动机状态结构体
typedef struct{
    uint8_t ruing : 1;  // 运行中
    uint8_t stop  : 1;  // 停止中
    uint8_t fwd   : 1;  // 正转
    uint8_t rev   : 1;  // 反转
    uint16_t errorCode; // 错误码
    uint16_t setFreq;   // 设定频率
    uint16_t curFreq;   // 当前频率
}PMotorStatus_ST;

// 原动机操作结构体
typedef struct{
    uint8_t  setMode;   // 模式设置
    uint16_t setTime;   // 加减速时间设置
    uint16_t setFreq;   // 运行频率设置
}PMotorOperate_ST;

// 全局变量结构体
extern PMotorStatus_ST pMotorStatus_st;

uint8_t PMotor_QueryStatus(void);
uint8_t PMotor_WorkModeSwitch(PRIRUNTYPE mode, uint16_t freq, uint16_t time);
uint8_t PMotor_SetFrequenceEx(uint16_t freq);
uint8_t PMotor_FuncOperate(void);
uint8_t PMotor_RecvHandle(uint8_t * pData);

#ifdef __cplusplus
}
#endif
#endif   /*   __EXTEND_PRIMEMOTOR_DRIVER_H__   */
